X-MimeOLE: Produced By Microsoft Exchange V6.5
Received: by onstor-exch02.onstor.net 
	id <01C92FD6.D02A459E@onstor-exch02.onstor.net>; Thu, 16 Oct 2008 14:33:21 -0700
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C92FD6.D02A459E"
Content-class: urn:content-classes:message
Subject: RE: Functional Spec for Restarting Aborted Mirror Sessions
Date: Thu, 16 Oct 2008 14:33:21 -0700
Message-ID: <BB375AF679D4A34E9CA8DFA650E2B04E0C0D8787@onstor-exch02.onstor.net>
In-Reply-To: <BB375AF679D4A34E9CA8DFA650E2B04E0C0D8733@onstor-exch02.onstor.net>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Functional Spec for Restarting Aborted Mirror Sessions
Thread-Index: Ackvwc2p16X2XnVpSBWREx63PQrjQQADPGaAAAGxMXA=
References: <BB375AF679D4A34E9CA8DFA650E2B04E0C0D86BA@onstor-exch02.onstor.net> <BB375AF679D4A34E9CA8DFA650E2B04E0C0D8733@onstor-exch02.onstor.net>
From: "Maxim Kozlovsky" <maxim.kozlovsky@onstor.com>
To: "Jonathan Goldick" <jonathan.goldick@onstor.com>,
	"Deepak Veliath" <deepak.veliath@onstor.com>,
	"dl-Design Review" <dl-designreview@onstor.com>
Cc: "dl-Kegg" <dl-Kegg@onstor.com>

This is a multi-part message in MIME format.

------_=_NextPart_001_01C92FD6.D02A459E
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

I agree that saving just the last in-order block number will be much
easier and clear to implement. Even though the blocks can be written out
of order, it should be easy to keep track of the last in-order block
that was written.

=20

________________________________

From: Jonathan Goldick=20
Sent: Thursday, October 16, 2008 1:45 PM
To: Deepak Veliath; dl-Design Review
Cc: dl-Kegg
Subject: RE: Functional Spec for Restarting Aborted Mirror Sessions

=20

1.	Section 5, as you make clear, the key to restarting is to know
what the target has on disk, basically a checkpoint marker.  Since we
send blocks in order can we just periodically write out the last block
number know to have hit disk?  A super-block field would be easy.  While
an implementation note, this would avoid changing the cluster DB and
that is relevant here.  When all the blocks have been received we can
just set the number to the last block number in the file system so it
handles a lot of the cases you have mentioned.
2.	Section 6, I'm not sure that the restart command adds a lot,
avoiding the creation of a new snapshot is the only clear addition over
mirror start and that doesn't seem worth creating a new command verb.
3.	Section 6, mirror start MIRRORNAME [skiprestart] To date we have
not used whole words for command options in the shell, but instead use
things like -a, -b, etc.  Other than testing, why would a customer ever
want to skip a restart?  While a large transfer can happen at any point,
the real problem here is baseline transfers so if the target is garbage
in some way we can just start over by detecting that, rather than having
the administrator try to figure it out.  This also reduces the test
cases and the need to change the GUI or the CLI.

=20

=20

=20

________________________________

From: Deepak Veliath=20
Sent: Thursday, October 16, 2008 12:03 PM
To: dl-Design Review
Subject: Functional Spec for Restarting Aborted Mirror Sessions

=20

\\mightydog\software\Kegg\Functional
Specs\RestartAbortedMirrorSessionsFuncSpec.doc
<file:///\\mightydog\software\Kegg\Functional%20Specs\RestartAbortedMirr
orSessionsFuncSpec.doc>=20


------_=_NextPart_001_01C92FD6.D02A459E
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:st1=3D"urn:schemas-microsoft-com:office:smarttags" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
 namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags" =
name=3D"PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:blue;
	text-decoration:underline;}
p
	{mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman";}
span.EmailStyle18
	{mso-style-type:personal;
	font-family:Arial;
	color:navy;}
span.EmailStyle19
	{mso-style-type:personal-reply;
	font-family:Arial;
	color:navy;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:628776906;
	mso-list-template-ids:1033788366;}
@list l1
	{mso-list-id:2056271304;
	mso-list-type:hybrid;
	mso-list-template-ids:1465010010 67698703 67698713 67698715 67698703 =
67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
	{mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level2
	{mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dblue>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>I agree that <st1:PersonName =
w:st=3D"on">sa</st1:PersonName>ving
just the last in-order block number will be much easier and clear to =
implement.
Even though the blocks can be written out of order, it should be easy to =
keep
track of the last in-order block that was =
written.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<div style=3D'border:none;border-left:solid blue 1.5pt;padding:0in 0in =
0in 4.0pt'>

<div>

<div class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><font =
size=3D3
face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>

<hr size=3D2 width=3D"100%" align=3Dcenter tabindex=3D-1>

</span></font></div>

<p class=3DMsoNormal><b><font size=3D2 face=3DTahoma><span =
style=3D'font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font =
size=3D2
face=3DTahoma><span style=3D'font-size:10.0pt;font-family:Tahoma'> =
<st1:PersonName
w:st=3D"on">Jonathan Goldick</st1:PersonName> <br>
<b><span style=3D'font-weight:bold'>Sent:</span></b> Thursday, October =
16, 2008
1:45 PM<br>
<b><span style=3D'font-weight:bold'>To:</span></b> <st1:PersonName =
w:st=3D"on">Deepak
 Veliath</st1:PersonName>; dl-Design Review<br>
<b><span style=3D'font-weight:bold'>Cc:</span></b> dl-Kegg<br>
<b><span style=3D'font-weight:bold'>Subject:</span></b> RE: Functional =
Spec for
Restarting Aborted Mirror Sessions</span></font><o:p></o:p></p>

</div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<ol style=3D'margin-top:0in' start=3D1 type=3D1>
 <li class=3DMsoNormal style=3D'color:navy;mso-list:l1 level1 =
lfo3'><font size=3D2
     color=3Dnavy face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>Section
     5, as you make clear, the key to restarting is to know what the =
target has
     on disk, basically a checkpoint marker.&nbsp; Since we send blocks =
in order
     can we just periodically write out the last block number know to =
have hit
     disk?&nbsp; A super-block field would be easy.&nbsp; While an
     implementation note, this would avoid changing the cluster DB and =
that is
     relevant here.&nbsp; When all the blocks have been received we can =
just
     set the number to the last block number in the file system so it =
handles a
     lot of the cases you have mentioned.<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'color:navy;mso-list:l1 level1 =
lfo3'><font size=3D2
     color=3Dnavy face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>Section
     6, I&#8217;m not sure that the restart command adds a lot, avoiding =
the creation
     of a new snapshot is the only clear addition over mirror start and =
that
     doesn&#8217;t seem worth creating a new command =
verb.<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'color:navy;mso-list:l1 level1 =
lfo3'><font size=3D2
     color=3Dnavy face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>Section
     6, </span></font><font color=3Dblack face=3D"Courier New"><span
     style=3D'font-family:"Courier New";color:windowtext'>mirror start =
MIRRORNAME
     [skiprestart] </span></font><font size=3D2 face=3DArial><span
     style=3D'font-size:10.0pt;font-family:Arial'>To date we have not =
used whole
     words for command options in the shell, but instead use things like
     &#8211;a, -b, etc.&nbsp; Other than testing, why would a customer =
ever
     want to skip a restart?&nbsp; While a large transfer can happen at =
any
     point, the real problem here is baseline transfers so if the target =
is
     garbage in some way we can just start over by detecting that, =
rather than
     having the administrator try to figure it out.&nbsp; This also =
reduces the
     test cases and the need to change the GUI or the =
CLI.<o:p></o:p></span></font></li>
</ol>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<div>

<div class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><font =
size=3D3
face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>

<hr size=3D2 width=3D"100%" align=3Dcenter tabindex=3D-1>

</span></font></div>

<p class=3DMsoNormal><b><font size=3D2 face=3DTahoma><span =
style=3D'font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font =
size=3D2
face=3DTahoma><span style=3D'font-size:10.0pt;font-family:Tahoma'> =
<st1:PersonName
w:st=3D"on">Deepak Veliath</st1:PersonName> <br>
<b><span style=3D'font-weight:bold'>Sent:</span></b> Thursday, October =
16, 2008
12:03 PM<br>
<b><span style=3D'font-weight:bold'>To:</span></b> dl-Design Review<br>
<b><span style=3D'font-weight:bold'>Subject:</span></b> Functional Spec =
for
Restarting Aborted Mirror Sessions</span></font><o:p></o:p></p>

</div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p><font size=3D2 face=3D"Times New Roman"><span =
style=3D'font-size:10.0pt'><a
href=3D"file:///\\mightydog\software\Kegg\Functional%20Specs\RestartAbort=
edMirrorSessionsFuncSpec.doc">\\mightydog\software\Kegg\Functional
Specs\RestartAbortedMirrorSessionsFuncSpec.doc</a></span></font><o:p></o:=
p></p>

</div>

</div>

</body>

</html>

------_=_NextPart_001_01C92FD6.D02A459E--
